/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package project.jsf;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import project.ejbs.Session;
import javax.ejb.EJB;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import project.ejbs.UtilizadorFacade;
import project.entity.Papel.Perfil;
import project.entity.Utilizador;

/**
 *
 * @author Wolf
 */
@ManagedBean(name = "barController")
@RequestScoped
public class BarController {

    @EJB
    private Session sessao;
    
    @EJB
    private UtilizadorFacade ejbUtilizador;
    
    private Utilizador utilizador;
    
    public BarController() {
    }
    
    public boolean isLogged(String username){
        if (username != null && !username.equals("")){
            utilizador = ejbUtilizador.find(username);
            sessao.setUsername(utilizador.getUsername());
            sessao.setPapel(utilizador.getPapel().getPapel());
            return true;
        }
        return false;
    }
    
    public String logout(HttpSession session, HttpServletRequest request){
        sessao.setIdEvento(-1);
        sessao.setIdSubmissao(-1);
        sessao.setPapel(null);
        sessao.setUsername(null);
        try {
            request.logout();
        } catch (Exception e) {
            
        }
        
        session.invalidate();
        return "/evento/List.xhtml";
    }
    
    public String getPUNome(String username){
        isLogged(username);
        if (utilizador != null){
            return "Bem-Vindo " + utilizador.getpNome() + " " + utilizador.getuNome();
        }
        return "";
    }
    
    public boolean isEditor(){
        try {
            return sessao.getPapel() == Perfil.Editor;
        } catch (Exception e) {
            return false;
        }
    }
    
    public boolean isAutor(){
        try {
            return sessao.getPapel() == Perfil.Autor;
        } catch (Exception e) {
            return false;
        }
    }
    
    public boolean isRevisor(){
        try {
            return sessao.getPapel() == Perfil.Revisor;
        } catch (Exception e) {
            return false;
        }
    }

}
